package com.hugang.aboutstring;

/**
 * 一道面试题
 * 注意：java传递参数时，基本数据类型传递的是值，而引用数据类型传递的是地址值，但是由于String的不可变性，因此string依然是good
 *
 * @author hg
 * @date 2020/6/17 09:56
 */
public class StringTest1 {

    String string = "good";
    char[] chars = new char[]{'t', 'e', 's', 't'};

    public void change (String s, char[] chars){
        System.out.println(System.identityHashCode("方法中s对象的地址值：" + s));
        s = "bad";
        chars[0] = 'a';
    }

    public static void main(String[] args) {
        StringTest1 stringTest1 = new StringTest1();
        System.out.println(System.identityHashCode("stringTest1对象的string地址值：" + stringTest1.string));
        stringTest1.change(stringTest1.string, stringTest1.chars);
        System.out.println(stringTest1.string + "   " + new String(stringTest1.chars));
    }
}
